package com.jerei.utils;

import java.util.HashMap;
import java.util.Map;

/**
 * 文件类型
 *
 * @author sunfeihu
 */
public enum FileType {
    FILE, // 文件类型
    MEDIA, // 多媒体音视频类型
    IMAGE, // 图片类型
    UNKNOWN;// 未知的文件类型

    /**
     * 跟进扩展名获取文件类型
     *
     * @param extName 扩展名
     * @return 文件类型
     */
    public static FileType getFileType(String extName) {
        FileType ft = null;
        Map<String, FileType> image = new HashMap<String, FileType>();
        image.put("jpg", FileType.IMAGE);
        image.put("gif", FileType.IMAGE);
        image.put("png", FileType.IMAGE);
        image.put("bmp", FileType.IMAGE);
        image.put("webp", FileType.IMAGE);
        image.put("raw", FileType.IMAGE);
        image.put("tif", FileType.IMAGE);
        Map<String, FileType> media = new HashMap<String, FileType>();
        media.put("mp3", FileType.MEDIA);
        media.put("mp4", FileType.MEDIA);
        media.put("rmvb", FileType.MEDIA);
        media.put("flv", FileType.MEDIA);
        media.put("swf", FileType.MEDIA);
        media.put("wmv", FileType.MEDIA);
        media.put("amr", FileType.MEDIA);
        media.put("wma", FileType.MEDIA);
        media.put("avi", FileType.MEDIA);
        media.put("mpg", FileType.MEDIA);
        media.put("mpeg", FileType.MEDIA);
        Map<String, FileType> file = new HashMap<String, FileType>();
        file.put("rar", FileType.FILE);
        file.put("zip", FileType.FILE);
        file.put("doc", FileType.FILE);
        file.put("docx", FileType.FILE);
        file.put("ppt", FileType.FILE);
        file.put("pptx", FileType.FILE);
        file.put("xls", FileType.FILE);
        file.put("xlsx", FileType.FILE);
        file.put("pdf", FileType.FILE);
        file.put("ipa", FileType.FILE);
        file.put("apk", FileType.FILE);
        file.put("pdf", FileType.FILE);
        file.put("txt", FileType.FILE);
        file.put("json", FileType.FILE);
        if (null != image.get(extName) && image.get(extName).equals(FileType.IMAGE)) {
            ft = FileType.IMAGE;
        } else if (null != media.get(extName) && media.get(extName).equals(FileType.MEDIA)) {
            ft = FileType.MEDIA;
        } else if (null != file.get(extName) && file.get(extName).equals(FileType.FILE)) {
            ft = FileType.FILE;
        } else {
            ft = FileType.UNKNOWN;
        }
        return ft;
    }
}

